package ${model.packageName}.api.converter;

import java.util.List;
import java.util.Map;

import org.mapstruct.Mapper;

import ${model.packageName}.api.bean.request.${model.initUpperName}CreateRequest;
import ${model.packageName}.api.bean.request.${model.initUpperName}UpdateRequest;
import ${model.packageName}.api.bean.request.${model.initUpperName}DeleteRequest;
import ${model.packageName}.api.bean.request.${model.initUpperName}QueryRequest;
import ${model.packageName}.api.bean.request.${model.initUpperName}PageRequest;
import ${model.packageName}.api.bean.response.${model.initUpperName}InfoResponse;
import ${model.packageName}.model.${model.initUpperName}Model;

import io.terminus.common.model.Paging;

@Mapper(componentModel = "spring")
public interface ${model.initUpperName}ApiConverter {
	
	${model.initUpperName}Model get(${model.initUpperName}CreateRequest request);

	${model.initUpperName}Model get(${model.initUpperName}UpdateRequest request);
	
	${model.initUpperName}Model get(${model.initUpperName}DeleteRequest request);
	
	${model.initUpperName}Model get(${model.initUpperName}QueryRequest request);
	
	${model.initUpperName}Model get(${model.initUpperName}PageRequest request);
	
	Map<String, Object> pageRequest2Map(${model.initUpperName}PageRequest request);
	
	Map<String, Object> model2Map(${model.initUpperName}Model model);
	
	${model.initUpperName}InfoResponse model2InfoResponse(${model.initUpperName}Model model);
	
	List<${model.initUpperName}InfoResponse> modelList2InfoResponseList(List<${model.initUpperName}Model> modelList);
	
	Paging<${model.initUpperName}InfoResponse> modePage2InfoPage(Paging<${model.initUpperName}Model> model);
}
